public class demo1 {
    class Solution {
        public int findNumberOfLIS(int[] nums) {
            int n=nums.length;
            int[]length=new int[n];//表示以该位置的最长子序列长度
            int[]count=new int[n];//表示以该位置的最长子序列个数
            int ret=1;//表示最长的长度
            int sum=1;//表示最长时的数量
            for(int i=0;i<n;i++)length[i]=count[i]=1;
            for(int i=1;i<n;i++){
                for(int j=i;j>=0;j--){
                    if(nums[i]>nums[j]){
                        if(length[j]+1==length[i]){
                            count[i]+=count[j];
                        }else if(length[j]+1>length[i]){
                            count[i]=count[j];
                            length[i]=length[j]+1;
                        }
                    }
                }
                if(ret==length[i]){
                    sum+=count[i];
                }else if(ret<length[i]){
                    ret=length[i];
                    sum=count[i];
                }
            }
            return sum;
        }
    }
}
